package algorithm;

public class leetcode_0031 {
    public void nextPermutation(int[] nums) {
        int temp;
        int len=nums.length;
        for(int i=len-1;i>=1;--i){
            if(nums[i]>nums[i-1]){
                for(int j=len-1;j>=i;--j){
                    if(nums[j]>nums[i-1]){
                        temp=nums[i-1];nums[i-1]=nums[j];nums[j]=temp;
                        for(int k=0;i+k<len-1-k;++k){
                            temp=nums[i+k];
                            nums[i+k]=nums[len-1-k];
                            nums[len-1-k]=temp;
                        }
                        return;
                    }
                }
            }
        }
        for(int k=0;k<len-1-k;++k){
            temp=nums[k];
            nums[k]=nums[len-1-k];
            nums[len-1-k]=temp;
        }
        return;
    }
}
